package com.example.signupservice.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.signupservice.entity.ActivityCheckin;

import java.util.Map;

public interface ActivityCheckinService extends IService<ActivityCheckin> {

    // 新增方法
    boolean addCheckinRecord(ActivityCheckin checkin);

    boolean delete(Long signupId, Long volunteerId);

    // 删除方法
    boolean deleteCheckinRecord(Long id);

    // 修改方法
    boolean updateCheckinRecord(ActivityCheckin checkin);

    // 查询单个记录
    ActivityCheckin getCheckinRecord(Long id);

    /**
     * 签到操作
     * @param signupId 报名ID
     * @param operator 操作人
     * @return 是否成功
     */
    boolean checkin(Long signupId, Long operator);

    /**
     * 签退操作
     * @param signupId 报名ID
     * @param operator 操作人
     * @return 是否成功
     */
    boolean checkout(Long signupId, Long operator);

    /**
     * 条件分页查询签到记录
     */
    IPage<ActivityCheckin> pageCheckins(Integer current, Integer size, Map<String, Object> params);

    /**
     * 更新活动评价
     */
    boolean updateEvaluation(Long checkinId, Integer score, String comment);

    ActivityCheckin getCheckinDetail(Long signupId);
}
